package com.metro.paperless.common.beans.constant;

import com.metro.paperless.common.beans.DicTypeMapper;
import com.metro.paperless.dic.mapper.IDicMapper;

/**
 * 数据字典分类
 * 对应到 分类数据类，或者分类数据表中的数据
 * @author xk
 *
 */
public enum DicTypeEnum implements DicTypeMapper {
    /** 数据状态 */
    DATA_STATUS,
    /** 用户锁定状态 */
    USER_LOCK_STATUS,
    /** 子系统 */
    SUB_SYSTEM,
    /** 权限类型 */
    PERMISSION_TYPE,
    /** 系统角色  */
    role("queryRoleAsLV"),
    /** 系统角色ID,CODE  */
    ROLE_ID_CODE("queryRoleIdCodeAsLV"),
    /** 操作类型 */
    OPERATE,
    /**
     * 是否
     */
    YES_OR_NO,
    /** 系统参数 */
    properties("queryPropertiesAsLabelValue"),
    /** 部门列表 */
    DEPARTMENT("queryDeparmentAsLV"),
    /** 库位列表 */
    STORAGE_LOCATION("queryStorageLocationAsLV"),
    /**
     * 代码生成项目
     */
    GEN_PROJECT("queryGenProjectAsLabelValue"),
    /**
     * 查询比较方式
     */
    QUERY_COMPARE_TYPE,
    /**
     * 表单类型
     */
    FORM_TYPE,
    /**
     * 代码生成器公共参数配置
     */
    GENERATOR_COMMON_PROPERTIES,
    /**
     *已升级
     */
    UPGRADE,
    /**
     *已实施
     */
    IMPLEMENTED,
    /**
     *已导入
     */
    IMPORTED,
    /**
     *tv状态
     */
    TVSTATUS,
    /**
     * 单位
     */
    MAT_UNIT("queryUnitAsLV"),
    MAT_UNIT_HIDDEN("queryUnitHiddenAsLV"),
    /**
     * 类别
     */
    MAT_TYPE("queryTypeAsLV"),
    MAT_TYPE_HIDDEN("queryTypeHiddenAsLV"),
    /**
     * 出库状态
     */
    OUT_STATUS,
    /**
     * 入库状态
     */
    IN_STATUS,
    /**
     * 借出状态
     */
    LEND_STATUS,
    /**
     * 归还状态
     */
    RETURN_STATUS,
    /**
     * 物资当前状态
     */
    CUR_STATUS,
    /**
     * 盘点状态
     */
    CHECK_STATUS,
    /**
     * 出入库类型
     */
    STORAGE_TYPE,
    /**
     * 内部单位
     */
    INSIDE_ORG("queryOrgAsLV"),
    INSIDE_ORG_HIDDEN("queryOrgHiddenAsLV"),
    /**
     * 外部单位
     */
    OUTSIDE_ORG("queryOutOrgAsLV"),
    OUTSIDE_ORG_HIDDEN("queryOutOrgHiddenAsLV"),
	/**
	 * 借还类型
	 */
	LEND_TYPE,
    /**
     *
     */
    DIFF_STOCK,
    /**
     * 出入库企业类型
     */
    ORG_TYPE
    ;

    /**
     * 方法名
     */
    private String methodName;
    /**
     * Mapper Class 默认 IDicMapper
     */
    private Class mapperClass = IDicMapper.class;

    private DicTypeEnum() {
    }
    private DicTypeEnum(String methodName) {
        this.methodName = methodName;
    }

    private DicTypeEnum(Class mapperClass,String methodName) {
        this.mapperClass = mapperClass;
        this.methodName = methodName;
    }

    @Override
    public Class getMapperClass() {
        return mapperClass;
    }

    @Override
    public String getType() {
        return this.name();
    }

    @Override
    public String getMethodName() {
        return methodName;
    }

}
